iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
0
自我挑戰組

來用Laravel做點什麼吧系列 第 10

D10 聽過Migration嗎?

  • 分享至 

  • xImage
  •  

昨天解決連線問題後又出現新狀況,資料庫好像又卡關了⋯⋯(白眼)

我暫時只能看看書面資料,腦補一下怎麼用、用在哪,等到我把資料庫的問題搞定了我再來實作看看。如果下一篇前能搞定,再來寫個資料庫問題解決方案吧,如果。(合掌

先說說昨天就該講到的 Migration。

有時候我們建完資料庫、建完資料表,然後發現「哎呀我還需要XXXX」,你只好再增加點東西,但是當你要刪除他們的時候,「咦咦咦原本長怎樣?我要刪什麼?」就有點尷尬了。

Migration像資料庫的版本控制,我們可以透過Migration來建立資料表,如果你有對這張資料表進行更動,Migration可以提供rollback的功能。

php artisan make:migration create_users_table

這個指令會在 database/migrations 目錄下生成Migration文件,檔名包含時間戳記,像這樣:2018_10_25_082836_create_users_table.php

Migration的使用跟資料庫有關連,如果想知道你的資料庫有沒有連上,試著用Migration生成一個資料表看看就知道了(望天

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    public function up()
    {
        //
    }

    public function down()
    {
        //
    }
}

在Migration的檔案中一定會有updown兩個方法的實作,up用於新增資料表、欄位、索引;down被用於回朔。

我自己是把up理解為GitHub裡面的綠色+,down則是紅色的-。

簡介一下相關Artisan指令:

php artisan migrate:執行所有migration
migrate:fresh:會移除所有資料表,然後除新執行php artisan migrate
migrate:install:建立一個migration檔案的資料表
migrate:refresh:還原上一個migration,並執行每個可用的migration
migrate:reset:回復此版本
migrate:rollback:回復上個版本
migrate:status:顯示各個migration表格,會註記是否被執行過


上一篇
D9 長官,聯絡上資料庫了!
下一篇
D11 Model, Eloquent, ORM(1)
系列文
來用Laravel做點什麼吧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言